{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 问题：Python中生成随机整数、随机小数、0—1之间小数方法\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "collapsed": true
   },
   "source": [
    "面试官想从这道题中考察面试人什么？\n",
    "在很多许多科学领域，包括生态学，心理学，计算机科学，物理学，化学，生物学以及经济学，我们都会用到一种数学统计模型：随机游走，而它所描述的路径由某些数学空间（例如整数）上的一系列随机步骤组成。随机游动的一个基本示例是整数行上的随机游动，该行从0开始，并且在每一步以相等的概率移动+1或-1。其他示例包括分子在液体或气体中行进时所追踪的路径，觅食动物的搜索路径，动荡的股票价格以及赌徒的财务状况都可以通过随机游走模型来近似，甚至尽管实际上它们可能并不是真正随机的。所以，在实现这些相关应用时，我们会使用到random模块，利用这个模块中的大量的函数来产生随机数和随机选择元素。\n",
    "\n",
    "答案\n",
    "生成随机整数使用random.randint()\n",
    "\n",
    "生成随机小数、0—1之间小数方法使用random.random()\n",
    "\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 拓展\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "除了生成随机数，random模块还包含基于均匀分布、高斯分布和其他分布的随机数生成函数。比如，random.uniform() 计算均匀分布随机数，random.gauss() 计算正态分布随机数。\n",
    "\n",
    "注意一点，在 random 模块中的函数不应该用在和密码学相关的程序中。出于对安全的考虑，如果你确实需要类似的功能，可以使用ssl模块中相应的函数。比如，ssl.RAND_bytes()可以用来生成一个安全的随机字节序列。\n",
    "\n",
    "Python之所以越来越流行，与它支持的模块库数之多是分不开的。现如今比较前沿的人工智能，数据分析也是使用Python的较为普遍，不仅因为Python易学，开发时间短等，它还有大量的数学类模块库，比如上面提到的random，还有Numpy，尤其是Numpy，它的功能更为丰富，可以单独开一门课专门讲解。"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.8.3"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 1
}